/**
 * 验证规则模块
 */
// 导入 验证规则 模块
const joi = require('joi')

/**
  * string() 值必须是字符串
  * alphanum() 值只能是包含 a-zA-Z0-9 的字符串
  * min(length) 最小长度
  * max(length) 最大长度
  * required() 值是必填项，不能为 undefined
  * pattern(正则表达式) 值必须符合正则表达式的规则 
  */

// 用户名 验证规则
const username = joi.string().alphanum().min(1).max(10).required()

// 密码 验证规则
const password = joi.string().pattern(/^[\S]{6,12}$/).required()

// id 验证规则
const id = joi.number().integer().min(1).required()

// 昵称 验证规则
const nickname = joi.string().required()

// 电子邮箱 验证规则
const email = joi.string().email().required()

// 用户头像 验证规则
const avatar = joi.string().dataUri().required()

// 验证注册和登录表单数据的规则对象
exports.reg_login_schema = {
  body: {
    username,
    password
  }
}

// 验证更新用户信息的规则对象
exports.update_userinfo_schema = {
  body: {
    id,
    nickname,
    email
  }
}

// 重置密码验证规则对象
exports.update_password_schema = {
  body: {
    oldPwd: password,
    newPwd: joi.not(joi.ref('oldPwd')).concat(password)
  }
}

// 更新头像验证规则对象
exports.update_avatar_schema = {
  body: {
    avatar
  }
}